using SuperSocketProxy;

namespace SocketPorxyServer;

public interface IPacketResponse
{
    /// <summary>
    /// 发送握手响应
    /// </summary>
    /// <param name="verifyUser"></param>
    /// <returns></returns>
    ValueTask SendHandshakeAsync(bool verifyUser);

    /// <summary>
    /// 发送验证响应
    /// </summary>
    /// <param name="verifyResult"></param>
    /// <returns></returns>
    ValueTask SendVerifyAsync(bool verifyResult);

    /// <summary>
    /// 发送连接响应
    /// </summary>
    /// <param name="connectTargetResult"></param>
    /// <returns></returns>
    ValueTask SendConnectAsync(ConnectTargetErrorType connectTargetResult);

    /// <summary>
    /// 发送连接响应
    /// </summary>
    /// <param name="packet"></param>
    /// <returns></returns>
    ValueTask SendConnectAsync(Socket5EndPointPacket packet);
    
    /// <summary>
    /// 
    /// </summary>
    /// <returns></returns>
    ValueTask SendConnectHttpAsync();
}